From: Alexander Larsson Date: Thu, 24 Feb 2011 11:06:25 +0000 (+0100) Subject: Ensure that all struts we set extends to their boundary X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8802 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d964d2baaebf3d8f6de639beeae2e6a573d5990b;p=gnome-shell.git Ensure that all struts we set extends to their boundary Mutter really expects this, as this is how app-specified struts happen. For instance, if the primary display is beside a taller screen and is not positioned at the top, then we extend the struts for the panel with the size of the unused area above the primary monitor. https://bugzilla.gnome.org/show_bug.cgi?id=642881 --- diff --git a/js/ui/chrome.js b/js/ui/chrome.js index 4bad7c038..addc9ac7d 100644 --- a/js/ui/chrome.js +++ b/js/ui/chrome.js @@ -413,6 +413,23 @@ Chrome.prototype = { else continue; + // Ensure that the strut rects goes all the way to the screen edge, + // as this really what mutter expects. + switch (side) { + case Meta.Side.TOP: + y1 = 0; + break; + case Meta.Side.BOTTOM: + y2 = global.screen_height; + break; + case Meta.Side.LEFT: + x1 = 0; + break; + case Meta.Side.RIGHT: + x2 = global.screen_width; + break; + } + let strutRect = new Meta.Rectangle({ x: x1, y: y1, width: x2 - x1, height: y2 - y1}); let strut = new Meta.Strut({ rect: strutRect, side: side }); struts.push(strut);